<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../../../../style.css" type="text/css" media="screen">
<link rel="stylesheet" href="../../../../../print.css" type="text/css" media="print">
<meta content="CollisionResolver,org.generalrelativity.foam.dynamics.collision.CollisionResolver,resolve" name="keywords">
<title>org.generalrelativity.foam.dynamics.collision.CollisionResolver</title>
</head>
<body>
<script type="text/javascript" language="javascript" src="../../../../../asdoc.js"></script><script type="text/javascript" language="javascript" src="../../../../../cookies.js"></script><script type="text/javascript" language="javascript">
<!--
				asdocTitle = 'CollisionResolver - API Documentation';
				var baseRef = '../../../../../';
				window.onload = configPage;
			--></script>
<table style="display:none" id="titleTable" cellspacing="0" cellpadding="0" class="titleTable">
<tr>
<td align="left" class="titleTableTitle">API Documentation</td><td align="right" class="titleTableTopNav"><a onclick="loadClassListFrame('../../../../../all-classes.html')" href="../../../../../package-summary.html">All&nbsp;Packages</a>&nbsp;|&nbsp;<a onclick="loadClassListFrame('../../../../../all-classes.html')" href="../../../../../class-summary.html">All&nbsp;Classes</a>&nbsp;|&nbsp;<a onclick="loadClassListFrame('../../../../../index-list.html')" href="../../../../../all-index-A.html">Index</a>&nbsp;|&nbsp;<a href="../../../../../index.html?org/generalrelativity/foam/dynamics/collision/CollisionResolver.html&amp;org/generalrelativity/foam/dynamics/collision/class-list.html" id="framesLink1">Frames</a><a onclick="parent.location=document.location" href="" style="display:none" id="noFramesLink1">No&nbsp;Frames</a></td><td rowspan="3" align="right" class="titleTableLogo"><img alt="Adobe Logo" title="Adobe Logo" class="logoImage" src="../../../../../images/logo.jpg"></td>
</tr>
<tr class="titleTableRow2">
<td align="left" id="subTitle" class="titleTableSubTitle">Class&nbsp;CollisionResolver</td><td align="right" id="subNav" class="titleTableSubNav"><a href="#methodSummary">Methods</a></td>
</tr>
<tr class="titleTableRow3">
<td colspan="2">&nbsp;</td>
</tr>
</table>
<script type="text/javascript" language="javascript">
<!--
if (!isEclipse() || window.name != ECLIPSE_FRAME_NAME) {titleBar_setSubTitle("Class CollisionResolver"); titleBar_setSubNav(false,false,false,false,false,false,true,false,false,false,false,false,false,false);}
--></script>
<div class="MainContent">
<table cellspacing="0" cellpadding="0" class="classHeaderTable">
<tr>
<td class="classHeaderTableLabel">Package</td><td><a onclick="javascript:loadClassListFrame('class-list.html')" href="package-detail.html">org.generalrelativity.foam.dynamics.collision</a></td>
</tr>
<tr>
<td class="classHeaderTableLabel">Class</td><td class="classSignature">public class CollisionResolver</td>
</tr>
</table>
<p></p>
<p></p>
<br>
<hr>
</div>
<a name="methodSummary"></a>
<div class="summarySection">
<div class="summaryTableTitle">Public Methods</div>
<table id="summaryTableMethod" class="summaryTable " cellpadding="3" cellspacing="0">
<tr>
<th>&nbsp;</th><th colspan="2">Method</th><th class="summaryTableOwnerCol">Defined&nbsp;by</th>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#resolve()">resolve</a>(contacts:Array):void</div>
<div class="summaryTableDescription">[static]
   Resolves an Array of pairwise Contacts
   
   <p>
   All rigid body contact resolution is handled identically.</div>
</td><td class="summaryTableOwnerCol">CollisionResolver</td>
</tr>
</table>
</div>
<script type="text/javascript" language="javascript">
<!--
showHideInherited();
--></script>
<div class="MainContent">
<a name="methodDetail"></a>
<div class="detailSectionHeader">Method detail</div>
<a name="resolve()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">resolve</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td>
</tr>
</table>
<div class="detailBody">
<code>public static function resolve(contacts:Array):void</code><p>
   Resolves an Array of pairwise Contacts
   
   </p><p>
   All rigid body contact resolution is handled identically. The
   collision detector ultimately narrows down an Array of type
   <code>Contact</code>. Each pairwise contact is explicitly
   resolved.
   </p>
   
   <p>
   The collision detector currently resolves penetration, so the
   contact points are legal- that is along the bodies, not within
   (doing pairwise detection/resolution which handles penetration
   by directly altering positon results in often-faulty contact 
   generation when an object is in contact with more than 1 object). 
   Solving this issue and all sorts of surrounding problems is a work 
   in progress.
   </p>
   
   <p>
   The equation being solved/applied here is:
   <pre>
   j = -(1 + e)rV . n / (n . n(iM1 + iM2) + (pv1 . n)^2 / I1 + (pv2 . n)^2 / I2)
   </pre>
   where:
   <pre>
   j = impulse to apply at contact point on both bodies (positive for body 1, negative for body2).
   e = coefficient of restitution (elasticity of colliding objects)
   rV = relative velocity of objects at collision point
   n = collision normal (Vector pointing perpindicularly outward from incident edge)
   iM1 = inverse mass of body 1
   iM2 = inverse mass of body 2
   pv1 = velocity of body 1 at point of contact
   pv2 = velocity of body 2 at point of contact
   I1 = intertia tensor of body 1 (scalar in 2D)
   I2 = intertia tensor of body 2 (scalar in 2D)
   </pre></p>
   
   <span class="label">Parameters</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20px"></td><td><code><span class="label">contacts</span>:Array</code> &mdash; Array of contacts to resolve
   
   </td>
</tr>
</table>
<p>
<span class="label">See also</span>
</p>
<div class="seeAlso">
<a href="Contact.html" target="">Contact</a>
<br>PhysicsEngine<br>IFineCollisionDetector.generateContacts<br>IBody.friction<br>IBody.elasticity</div>
</div>
<br>
<br>
<hr>
<br>
<p></p>
<center class="copyright"> 
</center>
</div>
</body>
</html>
<!-- -->
